package com.rd.sys.dto.client.analysis.config;

import baseproj.common.constants.BaseEnum;

/**
 * 轨迹图配置参数
 * 
 */
public class RouteConfig {

    /**
     * 参数名
     * 
     */
    public enum Key implements BaseEnum {
        DataSourceType(
                "cfg_route_data_source_type",
                "数据来源",
                "设置轨迹图的绘制数据来源，分为“注视点”数据和“原始”数据。选择“注视点”数据时，表示根据每个注视点来绘制轨迹图，一个轨迹点代表一个注视点；选择“原始”数据时，表示根据原始眼动数据点来绘制轨迹图，所有原始眼动点连线形成轨迹图。该参数用于体现轨迹图的不同绘制效果。"), RadiusType(
                "cfg_route_radius_type",
                "点样式",
                "设置轨迹图中轨迹点的样式，分为按“注视时间”和“固定”，该参数只在数据来源为“注视点”时有效。选择按“注视时间”时，表示每个轨迹点的大小根据注视时间的长短而定；选择“固定”时，表示每个轨迹点的大小相同。该参数用于体现轨迹图中轨迹点大小的绘制效果。"), AlterableRadius(
                "cfg_route_alterable_radius", "点大小",
                "设置轨迹图中轨迹点的大小，该参数只在轨迹点样式为按“注视时间”时有效。该参数值表示注视时间大于等于500ms的轨迹点半径大小（单位是像素），参数值越大，轨迹点越大。该参数用于体现轨迹图中轨迹点大小的绘制效果。"), Radius(
                "cfg_route_radius", "点大小",
                "设置轨迹图中轨迹点的大小，该参数只在轨迹点样式为“固定”时有效。该参数值表示轨迹点的半径大小（单位是像素），参数值越大，轨迹点越大。该参数用于体现轨迹图中轨迹点大小的绘制效果。"), Diaphaneity(
                "cfg_route_diaphaneity", "透明度", "设置轨迹点圆圈的透明度。该参数值越大，圆圈底色越不透明。该参数用于提升轨迹图的绘制效果。"), PlaySpeed(
                "cfg_route_play_speed", "播放速率",
                "设置眼动轨迹的回放速度。1x表示用录制的同样速率正常播放，5x表示5倍速来快速播放，0.5x表示0.5倍速来慢速播放。该参数用于研究眼动轨迹的详细路径。");

        private String code;
        private String name;
        private String description;

        private Key(String code, String name, String description) {
            this.code = code;
            this.name = name;
            this.description = description;
        }

        private Key(String code, String name) {
            this.code = code;
            this.name = name;
        }

        @Override
        public String getCode() {
            return this.code;
        }

        @Override
        public String getName() {
            return this.name;
        }

        public String getDescription() {
            return description;
        }

    }

    public enum DataSourceType implements BaseEnum {

        DataSource_Fiaxtion("1", "注视点"), DataSource_Raw("2", "原始");

        private String code;
        private String name;

        private DataSourceType(String code, String name) {
            this.code = code;
            this.name = name;
        }

        @Override
        public String getCode() {
            return this.code;
        }

        @Override
        public String getName() {
            return this.name;
        }
    }

    public enum RadiusType implements BaseEnum {

        RadiusType_Alterable("1", "注视时间"), RadiusType_Fixed("2", "固定");

        private String code;
        private String name;

        private RadiusType(String code, String name) {
            this.code = code;
            this.name = name;
        }

        @Override
        public String getCode() {
            return this.code;
        }

        @Override
        public String getName() {
            return this.name;
        }
    }

    public enum AlterableRadius implements BaseEnum {

        Radius_10("10", "10px=500ms"), Radius_20("20", "20px=500ms"), Radius_30("30", "30px=500ms"), Radius_40("40",
                "40px=500ms"), Radius_50("50", "50px=500ms"), Radius_60("60", "60px=500ms");

        private String code;
        private String name;

        private AlterableRadius(String code, String name) {
            this.code = code;
            this.name = name;
        }

        @Override
        public String getCode() {
            return this.code;
        }

        @Override
        public String getName() {
            return this.name;
        }
    }

    public enum Radius implements BaseEnum {

        Radius_20("20", "20px"), Radius_30("30", "30px"), Radius_40("40", "40px"), Radius_50("50", "50px"), Radius_60(
                "60", "60px");

        private String code;
        private String name;

        private Radius(String code, String name) {
            this.code = code;
            this.name = name;
        }

        @Override
        public String getCode() {
            return this.code;
        }

        @Override
        public String getName() {
            return this.name;
        }
    }

    public enum Diaphaneity implements BaseEnum {

        Diaphaneity_0("1", "0%"), Diaphaneity_10("0.9", "10%"), Diaphaneity_20("0.8", "20%"), Diaphaneity_30("0.7",
                "30%"), Diaphaneity_40("0.6", "40%"), Diaphaneity_50("0.5", "50%"), Diaphaneity_60("0.4", "60%"), Diaphaneity_70(
                "0.3", "70%"), Diaphaneity_80("0.2", "80%"), Diaphaneity_90("0.1", "90%");

        private String code;
        private String name;

        private Diaphaneity(String code, String name) {
            this.code = code;
            this.name = name;
        }

        @Override
        public String getCode() {
            return this.code;
        }

        @Override
        public String getName() {
            return this.name;
        }
    }

    public enum PlaySpeed implements BaseEnum {

        PlaySpeed_01("100", "0.1x"), PlaySpeed_02("200", "0.2x"), PlaySpeed_05("500", "0.5x"), PlaySpeed_1("1000", "1x"), PlaySpeed_2(
                "2000", "2x"), PlaySpeed_5("5000", "5x"), PlaySpeed_10("10000", "10x");

        private String code;
        private String name;

        private PlaySpeed(String code, String name) {
            this.code = code;
            this.name = name;
        }

        @Override
        public String getCode() {
            return this.code;
        }

        @Override
        public String getName() {
            return this.name;
        }
    }
}
